package com.proyemp.entity.classes;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


/**
 * The persistent class for the tipos_usuarios database table.
 * 
 */
@Entity
@Table(name="tipos_usuarios")
public class TiposUsuario implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="id_tipo_usuario")
	private Integer idTipoUsuario;

	private String descripcion;

    @Temporal( TemporalType.DATE)
	@Column(name="fecha_actualizacion")
	private Date fechaActualizacion;

	@Column(name="usuario_modificacion")
	private String usuarioModificacion;

	//bi-directional many-to-many association to PermisosTabla
    @ManyToMany
	@JoinTable(
		name="permisos_tipos_usuarios"
		, joinColumns={
			@JoinColumn(name="id_tipo_usuario")
			}
		, inverseJoinColumns={
			@JoinColumn(name="id_tabla")
			}
		)
	private Set<PermisosTabla> permisosTablas;

	//bi-directional many-to-one association to Usuario
	@OneToMany(mappedBy="tiposUsuario")
	private Set<Usuario> usuarios;

    public TiposUsuario() {
    }

	public Integer getIdTipoUsuario() {
		return this.idTipoUsuario;
	}

	public void setIdTipoUsuario(Integer idTipoUsuario) {
		this.idTipoUsuario = idTipoUsuario;
	}

	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public Date getFechaActualizacion() {
		return this.fechaActualizacion;
	}

	public void setFechaActualizacion(Date fechaActualizacion) {
		this.fechaActualizacion = fechaActualizacion;
	}

	public String getUsuarioModificacion() {
		return this.usuarioModificacion;
	}

	public void setUsuarioModificacion(String usuarioModificacion) {
		this.usuarioModificacion = usuarioModificacion;
	}

	public Set<PermisosTabla> getPermisosTablas() {
		return this.permisosTablas;
	}

	public void setPermisosTablas(Set<PermisosTabla> permisosTablas) {
		this.permisosTablas = permisosTablas;
	}
	
	public Set<Usuario> getUsuarios() {
		return this.usuarios;
	}

	public void setUsuarios(Set<Usuario> usuarios) {
		this.usuarios = usuarios;
	}
	
}